home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Editions.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  13.9 KB  |  379 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Editions.mod
  3.  
  4.      Contains:    Edition Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE Editions;
  23.  
  24. IMPORT SYSTEM, Types, Memory, Files, Aliases, Events, Dialogs;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31. (* resource types  *)
  32.     rSectionType*                = LONG("sect");                        (* Types.ResType of saved SectionRecords *)
  33. (* Finder types for edition files *)
  34.     kPICTEditionFileType*        = LONG("edtp");
  35.     kTEXTEditionFileType*        = LONG("edtt");
  36.     ksndEditionFileType*            = LONG("edts");
  37.     kUnknownEditionFileType*        = LONG("edtu");
  38.     kPublisherDocAliasFormat*    = LONG("alis");
  39.     kPreviewFormat*                = LONG("prvw");
  40.     kFormatListFormat*            = LONG("fmts");
  41.  
  42. (* section types *)
  43.     stSubscriber*                = $01;
  44.     stPublisher*                    = $0A;
  45.     sumAutomatic*                = 0;                            (* subscriber update mode - Automatically     *)
  46.     sumManual*                    = 1;                            (* subscriber update mode - Manually *)
  47.     pumOnSave*                    = 0;                            (* publisher update mode - OnSave            *)
  48.     pumManual*                    = 1;                            (* publisher update mode - Manually *)
  49.     kPartsNotUsed*                = 0;
  50.     kPartNumberUnknown*            = -1;                            (* misc *)
  51.     kPreviewWidth*                = 120;
  52.     kPreviewHeight*                = 120;
  53. (* bits for formatsMask *)
  54.     kPICTformatMask*                = 1;
  55.     kTEXTformatMask*                = 2;
  56.     ksndFormatMask*                = 4;
  57. (* pseudo-item hits for dialogHooks 
  58.  the first if for NewPublisher or NewSubscriber Dialogs *)
  59.     emHookRedrawPreview*            = 150;
  60. (* the following are for SectionOptions Dialog *)
  61.     emHookCancelSection*            = 160;
  62.     emHookGoToPublisher*            = 161;
  63.     emHookGetEditionNow*            = 162;
  64.     emHookSendEditionNow*        = 162;
  65.     emHookManualUpdateMode*        = 163;
  66.     emHookAutoUpdateMode*        = 164;
  67.  
  68. (* the refcon field of the dialog record during a modalfilter 
  69.  or dialoghook contains one the following *)
  70.     emOptionsDialogRefCon*        = LONG("optn");
  71.     emCancelSectionDialogRefCon*    = LONG("cncl");
  72.     emGoToPubErrDialogRefCon*    = LONG("gerr");
  73.     kFormatLengthUnknown*        = -1;
  74.  
  75. (* one byte, stSubscriber or stPublisher *)
  76.     
  77. TYPE
  78.     SectionType* = Types.SignedByte;
  79.  
  80. (* seconds since 1904 *)
  81.     TimeStamp* = LONGINT;
  82.  
  83. (* similar to Types.ResType *)
  84.     FormatType* = Types.FourCharCode;
  85.  
  86. (* used in Edition I/O *)
  87.     EditionRefNum* = Types.Handle;
  88.  
  89. (* update modes *)
  90. (* sumAutomatic, pumSuspend, etc *)
  91.     UpdateMode* = INTEGER;
  92.  
  93.     SectionPtr* = POINTER TO SectionRecord;
  94.     SectionHandle* = HANDLE TO SectionRecord (*ΔΔ POINTER TO SectionPtr*);
  95.  
  96.     SectionRecord* = RECORD
  97.         version*:                Types.SignedByte;                                (* always 0x01 in system 7.0 *)
  98.         kind*:                    SectionType;                            (* stSubscriber or stPublisher *)
  99.         mode*:                    UpdateMode;                                (* auto or manual *)
  100.         mdDate*:                    TimeStamp;                                (* last change in document *)
  101.         sectionID*:                LONGINT;                                (* app. specific, unique per document *)
  102.         refCon*:                    LONGINT;                                (* application specific *)
  103.         alias*:                    Aliases.AliasHandle;                            (* handle to Alias Record *)
  104.         subPart*:                LONGINT;                                (* which part of container file *)
  105.         nextSection*:            SectionHandle;                            (* for linked list of app's Sections *)
  106.         controlBlock*:            Types.Handle;                                    (* used internally *)
  107.         refNum*:                    EditionRefNum;                            (* used internally *)
  108.     END;
  109.  
  110.     EditionContainerSpec* = RECORD
  111.         theFile*:                Files.FSSpec;
  112.         theFileScript*:            Types.ScriptCode;
  113.         thePart*:                LONGINT;
  114.         thePartName*:            Types.Str31;
  115.         thePartScript*:            Types.ScriptCode;
  116.     END;
  117.  
  118.     EditionContainerSpecPtr* = POINTER TO EditionContainerSpec;
  119.  
  120.     EditionInfoRecord* = RECORD
  121.         crDate*:                    TimeStamp;                                (* date EditionContainer was created *)
  122.         mdDate*:                    TimeStamp;                                (* date of last change *)
  123.         fdCreator*:                Types.OSType;                                    (* file creator *)
  124.         fdType*:                    Types.OSType;                                    (* file type *)
  125.         container*:                EditionContainerSpec;                    (* the Edition *)
  126.     END;
  127.  
  128.     NewPublisherReply* = RECORD
  129.         canceled*:                BOOLEAN;                                (* O *)
  130.         replacing*:                BOOLEAN;
  131.         usePart*:                BOOLEAN;                                (* I *)
  132.         filler*:                    Types.SInt8;
  133.         preview*:                Types.Handle;                                    (* I *)
  134.         previewFormat*:            FormatType;                                (* I *)
  135.         container*:                EditionContainerSpec;                    (* I/O *)
  136.     END;
  137.  
  138.     NewSubscriberReply* = RECORD
  139.         canceled*:                BOOLEAN;                                (* O *)
  140.         formatsMask*:            Types.SignedByte;
  141.         container*:                EditionContainerSpec;                    (*I/O*)
  142.     END;
  143.  
  144.     SectionOptionsReply* = RECORD
  145.         canceled*:                BOOLEAN;                                (* O *)
  146.         changed*:                BOOLEAN;                                (* O *)
  147.         sectionH*:                SectionHandle;                            (* I *)
  148.         action*:                    Types.ResType;                                (* O *)
  149.     END;
  150.  
  151.     ExpModalFilterProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; itemOffset: INTEGER; VAR itemHit: INTEGER; yourDataPtr: Types.Ptr): BOOLEAN;
  152.     ExpDlgHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (itemOffset: INTEGER; itemHit: INTEGER; theDialog: Dialogs.DialogPtr; yourDataPtr: Types.Ptr): INTEGER;
  153.     ExpModalFilterUPP* = Types.UniversalProcPtr;
  154.     ExpDlgHookUPP* = Types.UniversalProcPtr;
  155.  
  156. CONST
  157.     uppExpModalFilterProcInfo* = $0000FBD0; (* PROCEDURE (4 byte param, 4 byte param, 2 byte param, 4 byte param, 4 byte param): 1 byte result; *)
  158.     uppExpDlgHookProcInfo* = $00003EA0; (* PROCEDURE (2 byte param, 2 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  159.  
  160. PROCEDURE NewExpModalFilterProc*(userRoutine: ExpModalFilterProcPtr): ExpModalFilterUPP;
  161.     (*$IF NOT GENERATINGCFM *)
  162.     INLINE PASCAL $2E9F;
  163.     (*$END*)
  164.  
  165. PROCEDURE NewExpDlgHookProc*(userRoutine: ExpDlgHookProcPtr): ExpDlgHookUPP;
  166.     (*$IF NOT GENERATINGCFM *)
  167.     INLINE PASCAL $2E9F;
  168.     (*$END*)
  169.  
  170. PROCEDURE CallExpModalFilterProc*(theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; itemOffset: INTEGER; VAR itemHit: INTEGER; yourDataPtr: Types.Ptr; userRoutine: ExpModalFilterUPP): BOOLEAN;
  171.     (*$IF NOT GENERATINGCFM*)
  172.     INLINE PASCAL $205F, $4E90;
  173.     (*$END*)
  174.  
  175. PROCEDURE CallExpDlgHookProc*(itemOffset: INTEGER; itemHit: INTEGER; theDialog: Dialogs.DialogPtr; yourDataPtr: Types.Ptr; userRoutine: ExpDlgHookUPP): INTEGER;
  176.     (*$IF NOT GENERATINGCFM*)
  177.     INLINE PASCAL $205F, $4E90;
  178.     (*$END*)
  179.  
  180. CONST
  181.     ioHasFormat*                    = 0;
  182.     ioReadFormat*                = 1;
  183.     ioNewFormat*                    = 2;
  184.     ioWriteFormat*                = 3;
  185.  
  186.     
  187. TYPE
  188.     FormatIOVerb* = Types.SignedByte;
  189.  
  190.  
  191. CONST
  192.     eoOpen*                        = 0;
  193.     eoClose*                        = 1;
  194.     eoOpenNew*                    = 2;
  195.     eoCloseNew*                    = 3;
  196.     eoCanSubscribe*                = 4;
  197.  
  198.     
  199. TYPE
  200.     EditionOpenerVerb* = Types.SignedByte;
  201.  
  202.     FormatIOParamBlock* = RECORD
  203.         ioRefNum*:                LONGINT;
  204.         format*:                    FormatType;
  205.         formatIndex*:            LONGINT;
  206.         offset*:                    LONGINT;
  207.         buffPtr*:                Types.Ptr;
  208.         buffLen*:                LONGINT;
  209.     END;
  210.  
  211.     FormatIOProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (selector: Types.ByteParameter; VAR PB: FormatIOParamBlock): INTEGER;
  212.     FormatIOUPP* = Types.UniversalProcPtr;
  213.  
  214.     EditionOpenerParamBlock* = RECORD
  215.         info*:                    EditionInfoRecord;
  216.         sectionH*:                SectionHandle;
  217.         document*:                POINTER TO Files.FSSpec;
  218.         fdCreator*:                Types.OSType;
  219.         ioRefNum*:                LONGINT;
  220.         ioProc*:                    FormatIOUPP;
  221.         success*:                BOOLEAN;
  222.         formatsMask*:            Types.SignedByte;
  223.     END;
  224.  
  225.     EditionOpenerProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (selector: Types.ByteParameter; VAR PB: EditionOpenerParamBlock): INTEGER;
  226.     EditionOpenerUPP* = Types.UniversalProcPtr;
  227.  
  228. CONST
  229.     uppFormatIOProcInfo* = $00000360; (* PROCEDURE (1 byte param, 4 byte param): 2 byte result; *)
  230.     uppEditionOpenerProcInfo* = $00000360; (* PROCEDURE (1 byte param, 4 byte param): 2 byte result; *)
  231.  
  232. PROCEDURE NewFormatIOProc*(userRoutine: FormatIOProcPtr): FormatIOUPP;
  233.     (*$IF NOT GENERATINGCFM *)
  234.     INLINE PASCAL $2E9F;
  235.     (*$END*)
  236.  
  237. PROCEDURE NewEditionOpenerProc*(userRoutine: EditionOpenerProcPtr): EditionOpenerUPP;
  238.     (*$IF NOT GENERATINGCFM *)
  239.     INLINE PASCAL $2E9F;
  240.     (*$END*)
  241.  
  242. CONST
  243.     sectionEventMsgClass*        = LONG("sect");
  244.     sectionReadMsgID*            = LONG("read");
  245.     sectionWriteMsgID*            = LONG("writ");
  246.     sectionScrollMsgID*            = LONG("scrl");
  247.     sectionCancelMsgID*            = LONG("cncl");
  248.  
  249.     currentEditionMgrVers*        = $0011;
  250.  
  251. (* Use InitEditionPackVersion(currentEditionMgrVers) instead of InitEditionPack *)
  252.  
  253. PROCEDURE InitEditionPackVersion*(curEditionMgrVers: INTEGER): Types.OSErr;
  254.     (*$IF NOT GENERATINGCFM*)
  255.     INLINE PASCAL $303C, $0100, $A82D;
  256.     (*$END*)
  257. PROCEDURE NewSection*((*CONST*)VAR container: EditionContainerSpec; sectionDocument: Files.ConstFSSpecPtr; kind: Types.ByteParameter; sectionID: LONGINT; initalMode: UpdateMode; VAR sectionH: SectionHandle): Types.OSErr;
  258.     (*$IF NOT GENERATINGCFM*)
  259.     INLINE PASCAL $303C, $0A02, $A82D;
  260.     (*$END*)
  261. PROCEDURE RegisterSection*((*CONST*)VAR sectionDocument: Files.FSSpec; sectionH: SectionHandle; VAR aliasWasUpdated: BOOLEAN): Types.OSErr;
  262.     (*$IF NOT GENERATINGCFM*)
  263.     INLINE PASCAL $303C, $0604, $A82D;
  264.     (*$END*)
  265. PROCEDURE UnRegisterSection*(sectionH: SectionHandle): Types.OSErr;
  266.     (*$IF NOT GENERATINGCFM*)
  267.     INLINE PASCAL $303C, $0206, $A82D;
  268.     (*$END*)
  269. PROCEDURE IsRegisteredSection*(sectionH: SectionHandle): Types.OSErr;
  270.     (*$IF NOT GENERATINGCFM*)
  271.     INLINE PASCAL $303C, $0208, $A82D;
  272.     (*$END*)
  273. PROCEDURE AssociateSection*(sectionH: SectionHandle; (*CONST*)VAR newSectionDocument: Files.FSSpec): Types.OSErr;
  274.     (*$IF NOT GENERATINGCFM*)
  275.     INLINE PASCAL $303C, $040C, $A82D;
  276.     (*$END*)
  277. PROCEDURE CreateEditionContainerFile*((*CONST*)VAR editionFile: Files.FSSpec; fdCreator: Types.OSType; editionFileNameScript: Types.ScriptCode): Types.OSErr;
  278.     (*$IF NOT GENERATINGCFM*)
  279.     INLINE PASCAL $303C, $050E, $A82D;
  280.     (*$END*)
  281. PROCEDURE DeleteEditionContainerFile*((*CONST*)VAR editionFile: Files.FSSpec): Types.OSErr;
  282.     (*$IF NOT GENERATINGCFM*)
  283.     INLINE PASCAL $303C, $0210, $A82D;
  284.     (*$END*)
  285. PROCEDURE OpenEdition*(subscriberSectionH: SectionHandle; VAR refNum: EditionRefNum): Types.OSErr;
  286.     (*$IF NOT GENERATINGCFM*)
  287.     INLINE PASCAL $303C, $0412, $A82D;
  288.     (*$END*)
  289. PROCEDURE OpenNewEdition*(publisherSectionH: SectionHandle; fdCreator: Types.OSType; publisherSectionDocument: Files.ConstFSSpecPtr; VAR refNum: EditionRefNum): Types.OSErr;
  290.     (*$IF NOT GENERATINGCFM*)
  291.     INLINE PASCAL $303C, $0814, $A82D;
  292.     (*$END*)
  293. PROCEDURE CloseEdition*(whichEdition: EditionRefNum; successful: BOOLEAN): Types.OSErr;
  294.     (*$IF NOT GENERATINGCFM*)
  295.     INLINE PASCAL $303C, $0316, $A82D;
  296.     (*$END*)
  297. PROCEDURE EditionHasFormat*(whichEdition: EditionRefNum; whichFormat: FormatType; VAR formatSize: Memory.Size): Types.OSErr;
  298.     (*$IF NOT GENERATINGCFM*)
  299.     INLINE PASCAL $303C, $0618, $A82D;
  300.     (*$END*)
  301. PROCEDURE ReadEdition*(whichEdition: EditionRefNum; whichFormat: FormatType; buffPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR buffLen: Memory.Size): Types.OSErr;
  302.     (*$IF NOT GENERATINGCFM*)
  303.     INLINE PASCAL $303C, $081A, $A82D;
  304.     (*$END*)
  305. PROCEDURE WriteEdition*(whichEdition: EditionRefNum; whichFormat: FormatType; buffPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; buffLen: Memory.Size): Types.OSErr;
  306.     (*$IF NOT GENERATINGCFM*)
  307.     INLINE PASCAL $303C, $081C, $A82D;
  308.     (*$END*)
  309. PROCEDURE GetEditionFormatMark*(whichEdition: EditionRefNum; whichFormat: FormatType; VAR currentMark: LONGINT): Types.OSErr;
  310.     (*$IF NOT GENERATINGCFM*)
  311.     INLINE PASCAL $303C, $061E, $A82D;
  312.     (*$END*)
  313. PROCEDURE SetEditionFormatMark*(whichEdition: EditionRefNum; whichFormat: FormatType; setMarkTo: LONGINT): Types.OSErr;
  314.     (*$IF NOT GENERATINGCFM*)
  315.     INLINE PASCAL $303C, $0620, $A82D;
  316.     (*$END*)
  317. PROCEDURE GetEditionInfo*(sectionH: SectionHandle; VAR editionInfo: EditionInfoRecord): Types.OSErr;
  318.     (*$IF NOT GENERATINGCFM*)
  319.     INLINE PASCAL $303C, $0422, $A82D;
  320.     (*$END*)
  321. PROCEDURE GoToPublisherSection*((*CONST*)VAR container: EditionContainerSpec): Types.OSErr;
  322.     (*$IF NOT GENERATINGCFM*)
  323.     INLINE PASCAL $303C, $0224, $A82D;
  324.     (*$END*)
  325. PROCEDURE GetLastEditionContainerUsed*(VAR container: EditionContainerSpec): Types.OSErr;
  326.     (*$IF NOT GENERATINGCFM*)
  327.     INLINE PASCAL $303C, $0226, $A82D;
  328.     (*$END*)
  329. PROCEDURE GetStandardFormats*((*CONST*)VAR container: EditionContainerSpec; VAR previewFormat: FormatType; preview: Types.Handle; publisherAlias: Types.Handle; formats: Types.Handle): Types.OSErr;
  330.     (*$IF NOT GENERATINGCFM*)
  331.     INLINE PASCAL $303C, $0A28, $A82D;
  332.     (*$END*)
  333. PROCEDURE GetEditionOpenerProc*(VAR opener: EditionOpenerUPP): Types.OSErr;
  334.     (*$IF NOT GENERATINGCFM*)
  335.     INLINE PASCAL $303C, $022A, $A82D;
  336.     (*$END*)
  337. PROCEDURE SetEditionOpenerProc*(opener: EditionOpenerUPP): Types.OSErr;
  338.     (*$IF NOT GENERATINGCFM*)
  339.     INLINE PASCAL $303C, $022C, $A82D;
  340.     (*$END*)
  341. PROCEDURE CallEditionOpenerProc*(selector: Types.ByteParameter; VAR PB: EditionOpenerParamBlock; routine: EditionOpenerUPP): Types.OSErr;
  342.     (*$IF NOT GENERATINGCFM*)
  343.     INLINE PASCAL $303C, $052E, $A82D;
  344.     (*$END*)
  345. PROCEDURE CallFormatIOProc*(selector: Types.ByteParameter; VAR PB: FormatIOParamBlock; routine: FormatIOUPP): Types.OSErr;
  346.     (*$IF NOT GENERATINGCFM*)
  347.     INLINE PASCAL $303C, $0530, $A82D;
  348.     (*$END*)
  349. PROCEDURE NewSubscriberDialog*(VAR reply: NewSubscriberReply): Types.OSErr;
  350.     (*$IF NOT GENERATINGCFM*)
  351.     INLINE PASCAL $303C, $0232, $A82D;
  352.     (*$END*)
  353. PROCEDURE NewSubscriberExpDialog*(VAR reply: NewSubscriberReply; where: Types.Point; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookUPP; filter: ExpModalFilterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  354.     (*$IF NOT GENERATINGCFM*)
  355.     INLINE PASCAL $303C, $0B34, $A82D;
  356.     (*$END*)
  357. PROCEDURE NewPublisherDialog*(VAR reply: NewPublisherReply): Types.OSErr;
  358.     (*$IF NOT GENERATINGCFM*)
  359.     INLINE PASCAL $303C, $0236, $A82D;
  360.     (*$END*)
  361. PROCEDURE NewPublisherExpDialog*(VAR reply: NewPublisherReply; where: Types.Point; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookUPP; filter: ExpModalFilterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  362.     (*$IF NOT GENERATINGCFM*)
  363.     INLINE PASCAL $303C, $0B38, $A82D;
  364.     (*$END*)
  365. PROCEDURE SectionOptionsDialog*(VAR reply: SectionOptionsReply): Types.OSErr;
  366.     (*$IF NOT GENERATINGCFM*)
  367.     INLINE PASCAL $303C, $023A, $A82D;
  368.     (*$END*)
  369. PROCEDURE SectionOptionsExpDialog*(VAR reply: SectionOptionsReply; where: Types.Point; expansionDITLresID: INTEGER; dlgHook: ExpDlgHookUPP; filter: ExpModalFilterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  370.     (*$IF NOT GENERATINGCFM*)
  371.     INLINE PASCAL $303C, $0B3C, $A82D;
  372.     (*$END*)
  373.  
  374. (* $ALIGN RESET*)
  375. (* $POP*)
  376.  
  377.  END Editions.
  378.  
  379.